//1,输入购买数量的时候,要规定只能输入数字并且是整数
//2,当输入框更改值的时候,触发小计功能
//3,点击选项框的时候,触发总计功能
//4,全选功能,触发每一个选项框的小计功能和总计功能
//5,反选功能,每一个选项框当前的状态要相反
//6,所有的选项框都选中时,自动勾选全选框

$(function(){
	var num;
	var total;
	var alltotal = 0;
	var box;
	var arr = [];
	var j = 0;
//	小计功能
	function Total(num,_this_){
		var price = Number(_this_.parents("tr").find("span[id^='price_']").text());
		var total = _this_.parents("tr").find("span[id^='total_']")
		total.text(num * price);
	}
	
//	总计功能
	function AllTotal(_this_,bool){
		if(bool){
			total = Number(_this_.parents("tr").find("span[id^='total_']").text())
			alltotal += total;  //alltotal = alltotal +total
			$("#total_price").text("¥"+alltotal+"元")
		}else{
			total = Number(_this_.parents("tr").find("span[id^='total_']").text())
			alltotal -= total;
			$("#total_price").text("¥"+alltotal+"元")
		}
	}
	
//	判断该选项框是否被选中
	function CheckedType(_this_){
		var checkedtype = _this_.prop("checked");
		if(checkedtype === true){
			return true;
		}else{
			return false;
		}
	}
	
//	判断选项框是否全部选择
	function IsCheckedAll(){
		arr = [];
		$("input[id^='box_']").each(function(){
			arr.push(CheckedType($(this)));
		})
		j = 0;
		for(i=0;i<=arr.length-1;i++){
			if(arr[i] === true){
				j++;
			}
		}
		if(j === arr.length){
			$("input[id='checkAll']").prop("checked",true)
		}else if(j < arr.length){
			$("input[id='checkAll']").prop("checked",false)
		}
	}
	

//	当输入框的值发生改变时触发	
	$("input[id^='num_']").change(function(){
		num = Number($(this).val());
		if(!isNaN(num)){
			if(num>=1){
				$(this).val(parseInt(num))
				num = $(this).val();
			}else{
				$(this).val(1);
				num = $(this).val();
			}
		}else{
			$(this).val(1);
			num = $(this).val();
		}
		
		Total(num,$(this));
		
		box = $(this).parents("tr").find("input[id^='box_']")
		if(CheckedType(box)){
			alltotal = 0;
			AllTotal($(this),true)
		}
	})
	
	
//	点击选项框
	$("input[id^='box_']").click(function(){
		if(CheckedType($(this))){
			AllTotal($(this),true);
			
		}else{
			AllTotal($(this),false);
		}
		IsCheckedAll()
	})
	
//	全选框
	$("input[id='checkAll']").click(function(){
		alltotal = 0;
		if(CheckedType($(this))){
			$("input[id^='box_']").prop("checked",true).each(function(){
				AllTotal($(this),true);
			})
		}else{
			$("input[id^='box_']").prop("checked",false).each(function(){
				$("#total_price").text("¥"+0+"元")
			})
		}	
	})
	
//	反选框
	$("#uncheck").click(function(){
		alltotal = 0;
		$("input[id^='box_']").each(function(){
			if(CheckedType($(this))){
				$(this).prop("checked",false)
			}else{
				$(this).prop("checked",true)
				AllTotal($(this),true);
			}
		})
		IsCheckedAll();
	})
})
